package kr.hkit.powerjava.chapter24.work4.service;

import java.util.Comparator;
import java.util.Scanner;

import kr.hkit.powerjava.chapter24.work4.dao.InterfaceDao;
import kr.hkit.powerjava.chapter24.work4.vo.Department;

public class DepartmentService extends ServiceItem<Department> {

	public DepartmentService(InterfaceDao<Department> dao, Scanner sc) {
		super(dao, sc);
	}

	@Override
	public Department inputItemInfo(boolean gubun) {
		System.out.println("학과버호 학과명");
		Department dept = new Department(sc.nextInt(), sc.next().trim());
		if (gubun) {
			System.out.print("층: ");
			int floor = sc.nextInt();
			dept.setFloor(floor);
		}
		return dept;
	}

	@Override
	public void prnSubMenu() {
		System.out.print("1. 이름순 정렬 2. 위치별 정렬 3. 번호순 정렬");
		int res = sc.nextInt();
		switch (res) {
		case 1:
			dao.prnItemList(new Comparator<Department>() {

				@Override
				public int compare(Department o1, Department o2) {
					return o1.getDeptName().hashCode()
							- o2.getDeptName().hashCode();
				}
			});
			break;
		case 2:
			dao.prnItemList(new Comparator<Department>() {

				@Override
				public int compare(Department o1, Department o2) {
					return o1.getFloor() - o2.getFloor();
				}
			});
			break;
		default:
			dao.prnItemList(null);
		}
	}

}
